#pragma once

#ifndef FILTER_H
#define FILTER_H

#include "cvhead.h"

// Filter type defines
#define BGREMOVE_FILTER		1
#define SMOOTH_FILTER		2
#define THRESH_FILTER		3
#define HIGHPASS_FILTER		4
#define CONTRAST_FILTER		5
#define SIM_HIGHPASS_FILTER 6
#define SCALER_FILTER		7



class Filter
{
protected:
	int filter_index;
	bool is_active;

public:
	virtual void process(IplImage* src, IplImage* des) = 0;

	int get_filter_index(void){return filter_index;}
	bool active(void){return is_active;}
	void set_active(bool b){is_active = b;}

	Filter(void);
	virtual ~Filter(void);

};

#endif